package com.link.base.base.report.dao.mybatis.mapper;

import com.link.base.base.report.model.GuideReport;
import com.link.base.base.report.model.SalesAmount;
import com.link.core.basic.dao.mapper.BasicMapper;

import java.util.List;

/**
 * @author unknown
 * @date unknown
 */
public interface GuideReportMapper extends BasicMapper<GuideReport> {
    /**
     * 逻辑是展示当前登陆人所创建的所有商机所处的各阶段汇总。
     * 就是商机上现在有个字段叫当前阶段，按照商机所处的阶段对商机数进行汇总。
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryOptyStageNum(GuideReport qr);

    /**
     * 一周商机数量汇总表：逻辑是当前登陆人创建的今日以前6天一直到今天每天新建的商机数
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryNewOptyNum(GuideReport qr);

    /**
     * 查询客户状态数量汇总
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccntStatusNum(GuideReport qr);

    /**
     * 客户关键节点推进报表
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccntKeyNum(GuideReport qr);

    /**
     * 产品销售分析（销售额）
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryProOrderSalesMoney(GuideReport qr);

    /**
     * 产品销售分析（订单数量）
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryProOrderSalesNum(GuideReport qr);

    /**
     * 销售订单状态分析
     *
     * @param qr
     * @return
     */
    public List<GuideReport> querySalesOrderStatusNum(GuideReport qr);

    /**
     * 企点客服接待统计
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccountPeopleNum(GuideReport qr);

    /**
     * 商机预算top10
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryOptyBudgtTop10(GuideReport qr);

    /**
     * 产品收藏top10
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryProductCollTop10(GuideReport qr);

    /**
     * 本周销量情况
     *
     * @param qr
     * @return
     */
    public List<SalesAmount> querySalesAmountReport(GuideReport qr);

    /**
     * 标签组信息
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccnttagReport(GuideReport qr);

    /**
     * 标签组详情信息
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccnttagItemReport(GuideReport qr);

    /**
     * 客户类型分析
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryAccntTypeReport(GuideReport qr);

    /**
     * 本周客户连接总结
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryContonectAccntReport(GuideReport qr);

    /**
     * 本周商机汇总分析
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryOptyStudyReport(GuideReport qr);

    /**
     * 本周订单数量分析
     *
     * @param qr
     * @return
     */
    public List<GuideReport> queryOrderNumReport(GuideReport qr);

    /**
     * 销售产品TOP10
     *
     * @param qr
     * @return
     */
    public List<GuideReport> querySalesProductTop10Report(GuideReport qr);

    /**
     * 品牌维度查询销售额
     *
     * @param qr
     * @return
     */
    public List<GuideReport> querySaleAmountByBrand(GuideReport qr);

    /**
     * 导购维度查询销售额
     *
     * @param qr
     * @return
     */
    public List<GuideReport> querySaleAmountByGuide(GuideReport qr);

    /**
     * 根据客户类型查询客户数量
     *
     * @param qr
     * @return
     */
    public GuideReport queryAccntTypeNum(GuideReport qr);

    /**
     * 根据客户类型查询客户数量(线上沟通客户人次)
     *
     * @param qr
     * @return
     */
    public GuideReport queryOnLineAccntNum(GuideReport qr);

    /**
     * 统计每周销售额（用于销售周报）
     *
     * @param qr
     * @return
     */
    public List<SalesAmount> querySalesAmountWeekReport(GuideReport qr);


}
